A Prototype Implementation of OpenMP Task Dependency Support
نویسندگان
چکیده
OpenMP 3.0 introduced the concept of asynchronous tasks, independent units of work that may be dynamically created and scheduled. Task synchronization is accomplished via the insertion of taskwait and barrier constructs. However, the inappropriate use of these constructs may incur significant overhead owing to global synchronizations for specific algorithms on large platforms. The performance of such algorithms may benefit substantially if a mechanism of specifying finer gained point-to-point synchronization between tasks is available. In this paper we present extensions to the current OpenMP task directive to enable the specification of dependencies among tasks. A task waits only until the explicit dependencies as specified by the programmer are satisfied, thereby enabling support for a dataflow model within OpenMP. We evaluate the extensions implemented in the OpenUH OpenMP compiler using LU decomposition and Smith-Waterman algorithms. By applying the extensions to the two algorithms, we demonstrate significant performance improvement over the standard tasking versions. When comparing our results with those obtained using related dataflow models OmpSs and QUARK, we observed that the versions using our task extensions delivered an average speedup of 2-6x.
منابع مشابه
A Proposal for lastprivate Clause on OpenMP task Pragma
Several implementations extend OpenMP with pragmas for programming heterogeneous systems using stream primitives. This paper surveys some of these extensions and then provides a minimal extension to the OpenMP3.0 standard to support data streams between tasks. We present a prototype implementation of the proposed extension in the GCC compiler and its runtime GOMP library.
متن کاملTask-Parallel Reductions in OpenMP and OmpSs
The wide adoption of parallel processing hardware in mainstream computing as well as the raising interest for efficient parallel programming in the developer community increase the demand for parallel programming model support for common algorithmic patterns. In this paper we present an extension to the OpenMP task construct to add support for reductions in while-loops and general-recursive fun...
متن کاملA Parallel Approach to Resource-Constrained Task Scheduling Problem
The task scheduling problem (TSP or SP) is a well known topic. Basically it consists of a group of task that should be executed (activated, started) somehow, spending the least time possible. The classic problem consider, besides tasks, the precedence and the processing units (PU) in which those tasks will be executed. These units might have similar characteristics (homogeneous environment) or ...
متن کاملSymmetric Indefinite Linear Solver using OpenMP Task on Multicore Architectures
Recently, the Open Multi-Processing (OpenMP) standard has incorporated task-based programming, where a function call with input and output data is treated as a task. At run time, OpenMP’s superscalar scheduler tracks the data dependencies among the tasks and executes the tasks as their dependencies are resolved. On a shared-memory architecture with multiple cores, the independent tasks are exec...
متن کاملA Runtime Implementation of OpenMP Tasks
Many task-based programming models have been developed and refined in recent years to support application development for shared memory platforms. Asynchronous tasks are a powerful programming abstraction that offer flexibility in conjunction with great expressivity. Research involving standardized tasking models like OpenMP and nonstandardized models like Cilk facilitate improvements in many t...
متن کامل